<?
class GeradorForm{
	private $tabela; // Nome da tabela a ser manipulada pelo formulario
	private $campos; // Array de objetos campos 
	private $tiposHtml; // Array de tipo dos campos
	private $tipoAcao ; // pode ser adicionar ou alterar
	
	public function __construct($tabela, $campos, $tiposHtml){
		$this->tabela = $tabela;
		$this->campos = $campos;
		$this->tiposHtml = $tiposHtml;
	}
	
	public function gerarForm($tipoAcao = "adicionar"){
		$this->tipoAcao = $tipoAcao;
		$html .= $this->gerarConsultaExibir();
		$html .= "<form action=\"".$this->gerarAcaoForm()."\">\n";
		$html .= "</form>";
		return $html;
	}
	
	private function gerarAcaoForm(){
		$acao = "acao".ucfirst($this->tabela).".php?acao=".$this->tipoAcao;
		if($this->tipoAcao == "alterar"){
			$acao .= "&id".ucfirst($this->tabela)."=<? echo \$c".ucfirst($this->tabela)."->".ucfirst($this->tabela)."->getId".ucfirst($this->tabela)."();?>";
		}
		return $acao;
	}
	
	private function gerarConsultaExibir(){
		$string = new String();
		if($this->tipoAcao == "alterar"){
			$consulta .= "<?\n";
			$consulta .= "\t\$".$string->baixarPrimeiraLetra($this->tabela)." = new (\$".$string->baixarPrimeiraLetra($this->tabela).");\n";
			$consulta .= "\t\$".$string->baixarPrimeiraLetra($this->tabela)."->setId".ucfirst($this->tabela)."(\$_REQUEST['id".ucfirst($this->tabela)."']);\n";
			$consulta .= "\t\$c".ucfirst($this->tabela)." = new Controle".ucfirst($this->tabela)."(\$".$string->baixarPrimeiraLetra($this->tabela).");\n";
			$consulta .= "\t\$c".ucfirst($this->tabela)."->exibir();\n";
			$consulta .= "?>\n";
		}
		return $consulta;
	}
}
?>